package com.marvels.product.param.api;

import java.util.List;


import com.marvels.common.exception.MarvelsBusinessException;
import com.marvels.product.param.dto.McptConsultingFeeDTO;
import com.marvels.product.param.dto.McptManagementFeeDTO;
import com.marvels.product.param.dto.McptProduct;
import com.marvels.product.param.dto.McptRateDTO;
import com.marvels.product.param.dto.McptRiskFeeDTO;
import com.marvels.product.productmanage.dto.McptProductFundRelationDto;
import com.marvels.product.productmanage.dto.McptProductTypeDto;


public interface ProductConsultFeeApi {
	
	
	
	/**
	 * 根据产品小类code查询咨询费信息
	 * @param consultingFeeCode
	 * @return
	 */
	public McptConsultingFeeDTO selectByProductCode(String productCode);
	
	
	/**
	 * 查询产品
	 * @param param
	 * @return
	 */
	public 	McptRiskFeeDTO getEntityByPrimaryKey(Long riskFeeId) throws MarvelsBusinessException;
	/**
	 * 获取最小金额
	 * @param id
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public McptProductTypeDto getProductType(Long id) throws MarvelsBusinessException;

	/**
	 * 获取管理费
	 * @param managementFeeId
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public McptManagementFeeDTO getMngfee(Long managementFeeId) throws MarvelsBusinessException;

	/***
	 * 获取咨询费咨询费
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public McptConsultingFeeDTO getConsultingFee( Long consultingFeeId)throws MarvelsBusinessException;

	/**
	 * 获取利率
	 * @param rateId
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public McptRateDTO getInterestRate(Long rateId)throws MarvelsBusinessException;
	
	/**
	 * 获取产品和资金源信息
	 * @param productId
	 * @return
	 * @throws MarvelsBusinessException 
	 */
	public List<McptProductFundRelationDto> getProductFundingSource(McptProductFundRelationDto mcpdto) throws MarvelsBusinessException;

	/**
	 * 获取贷款产品
	 * @param dto
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public McptProduct getProduct(McptProduct dto) throws MarvelsBusinessException;
}

